home *** CD-ROM | disk | FTP | other *** search
/ Experimental BBS Explossion 3 / Experimental BBS Explossion III.iso / gus / sdkdigv2.zip / SDKV2N27.TXT < prev    next >
Text File  |  1993-07-23  |  7KB  |  165 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6. GUS Programmer's Digest     Fri Jul 23 00:07     Volume 2: Issue  27  
  7.  
  8. Today's Topics:
  9.                      Real synths have sliders...
  10.                           SDK Doc Questions
  11.  
  12. Standard Info:
  13.     - Meta-info about the GUS can be found at the end of the Digest.
  14.     - Before you ask a question, please READ THE FAQ.
  15.  
  16. ----------------------------------------------------------------------
  17.  
  18. Date: Thu, 22 Jul 93 06:59:40 PDT
  19. From: deraud@power.amasd.anatcp.rockwell.com (Robert Lee DeRaud)
  20. Subject: Real synths have sliders...
  21. Message-ID: <9307221359.AA08738@power.amasd.anatcp.rockwell.com>
  22.  
  23. One of the main problems with sample-playback synths (at least those 
  24. without extensive and expensive back-end signal processing) is that they 
  25. cannot emulate classical analog synths worth a damn. The kind of beast 
  26. I'm talking about typically has MiniMoog somewhere in its gene pool:
  27.  
  28.     Signal Generator ---> VCF ---> VCA ---> Output
  29.  
  30. along with LFO's, controller wheels, envelope generators, etc  providing
  31. "programmable" control inputs to the VCF and VCA.
  32.  
  33. The GUS can do a decent enough job of emulating the VCA since amplitude 
  34. ramping is available, but it cannot handle the VCF at all: the frequency 
  35. content of the output is ENTIRELY controlled by the sample being played.  
  36.  
  37. The next part of this conversation typically goes like: "Well, get a 
  38. MiniMoog or Prophet or whatever and sample it!" WRONG! With the 
  39. exception of some (optional) keyboard-follow effects, the control inputs 
  40. to the analog synths VCF are INDEPENDENT of the note being played.  In 
  41. particular, the LFO frequency and envelope generator time constants are 
  42. usually fixed. Playing back the samples at various pitches makes these 
  43. emulated controls appear to follow the pitch. E.g. if the sample is 
  44. played back an octave higher than recorded, the LFO seems to be running 
  45. twice as fast and the envelope reaches its release point at half the 
  46. expected time.  The only way out of this is to multi-sample AT EVERY 
  47. NOTE! (So when is the 8MB "SuperGUS" coming out?)
  48.  
  49. [An aside: anyone truly serious about synthesizers owes it to 
  50. him/herself to sit down and fool around with an older analog synth at 
  51. least once. But be warned, the knob/slider twiddling can be truly addictive!]
  52.  
  53. So...the whole point of this is the question: can a GUS emulate a VCF by 
  54. using what amounts to a two-dimensional sample? If we have a bunch (say 
  55. 512) of small, simple waveform tables (say 512 samples each), that's one 
  56. 256K memory bank.  Each table has a different frequency content, i.e. it 
  57. corresponds to a different VCF setting. The idea is to switch from table 
  58. to table while the note is playing to emulate the VCF, in the same way
  59. that the amplitude is changed to emulate the VCA. But can the sample 
  60. base address be twiddled this way without generating an ugly assortment 
  61. of clicks and pops? (Note that the table OFFSET is not modified, so 
  62. there is a reasonable continuity in the output sample stream, assuming 
  63. the wave tables are properly constructed.)
  64.  
  65. [Another annoying aside: I THINK this is how the Fairlight worked, but 
  66. since they cost >$30K, I never got one to use at home :-)]
  67.  
  68. Comments?
  69.  
  70. ------------------------------
  71.  
  72. Date: Thu, 22 Jul 1993 10:09:57 -0700 (PDT)
  73. From: roberts@brahms.amd.com (Dave Roberts)
  74. Subject: SDK Doc Questions
  75. Message-ID: <9307221709.AA23905@angelo.amd.com>
  76.  
  77. I just snarfed the Postscript SDK documentation off the GUS
  78. mailserver, along with the SDK itself.  After reading the docs, I have
  79. a few of questions.
  80.  
  81. First, a general comment: The theory of operation section of the
  82. documentation needs to be expanded greatly!  All the stuff that
  83. follows later is pretty good, but there needs to be more discussion
  84. about the format of sound data, loop points, volume envelopes, etc.
  85. In other words, how all this stuff generally works.  Much of this
  86. stuff may be obvious to various people, but it wasn't for me.  If I
  87. hadn't been so engrossed with the GUS already, I'd have been totally
  88. lost.  Basically, the terminology wasn't defined (e.g., I was confused
  89. between a start and a begin point on a wave for a while).  Most of my
  90. questions would be answered with an expanded general theory section.
  91.  
  92. Now, on to the real questions.
  93.  
  94.  
  95. Question #1:
  96.  
  97. How does looping work?  Specifically, how does reverse looping
  98. operate?  What are the end points?  What are all the various looping
  99. options?  The docs mention resetting end points to deal with sampled
  100. decays.  What are the exact steps involved with this?  How do you
  101. handle decay without using a sampled decay?  Just a volume ramp down
  102. until you get to zero and then shut off the voice?
  103.  
  104.  
  105. Question #2:
  106.  
  107. The voice control registers have bits that can be modified at any time
  108. by the GF1.  The GF1 does a read-modify-write cycle to update these
  109. bits.  The SDK docs say that when writing to a register containing one
  110. of these bits that the software should write the value twice,
  111. separated by a delay (which is specified by I don't remember).  Anyway,
  112. this is all fine and dandy, but imagine this situation.
  113.  
  114. Voice control reigster, bit 6, controls the direction of movement
  115. through the wave.  What if I (the program) want to update a bit in the
  116. register.  I read the register value, modify the bit I want, and write
  117. it back twice.  What if the GF1, between the program's writes changes
  118. the direction of movement bit (because it was set to a loop mode and
  119. hit the end of the loop points and is now bouncing back the other
  120. way)?  The problem that I see is that I (the program) will end up
  121. setting the direction of movement bit back to the old value, which
  122. will start the wave back bouncing the other way before it reaches the
  123. other loop point.  Am I right with this, or do I not understand
  124. looping?  Is this a problem?  Is there a workaround other than, "don't
  125. do that"?
  126.  
  127.  
  128. Question #3:
  129.  
  130. One page 4 of the SDK docs they are describing volume ramping.  There
  131. is a table that describes the rate bits.  The table mentions something
  132. called a "FUR".  What's a FUR?
  133.  
  134.  
  135. Question #4:
  136.  
  137. What is the centerpoint for unsigned waveforms, 7F or 80 (hex)?
  138.  
  139.  
  140.  
  141. Thanks for any help you gurus might be able to give.
  142.  
  143. Dave Roberts
  144. Advanced Micro Devices, Inc.
  145. I/O and Network Products Division
  146. david.roberts@amd.com
  147.  
  148. ------------------------------
  149.  
  150. End of GUS Programmer's Digest V2 #27
  151. *************************************
  152.  
  153. To post to tomorrow's digest:               <gus-sdk%itchy@dsd.es.com>
  154. To (un)subscribe or get help:       <gus-sdk-request%itchy@dsd.es.com>
  155. To contact a human (last resort):     <gus-sdk-owner%itchy@dsd.es.com>
  156.  
  157. FTP sites:         archive.epas.utoronto.ca         pub/pc/ultrasound
  158.                    wuarchive.wustl.edu       systems/msdos/ultrasound
  159. Hints:
  160.       - Get the FAQ from the FTP sites or the request server.
  161.       - Mail to <gus-sdk-request%itchy@dsd.es.com> for info about
  162.     other GUS related mailing lists (UNIX, OS/2, GUS-MIDI, etc.)
  163.  
  164.  
  165.